;:poke56,128
;:sys36864
	;.opt oo
tmp	= 247
irq	= $314
konf	= 1
font	= 53248
ram	= 14336
mem1	= 56
mem2	= 52
tmp2	= tmp+2
pages	= 3
bank	= 53272
user	= 31
scnclr	= $e544
out	= $ffd2
dir	= tmp2+2
ctr	= dir+1
speed	= 100
getkey	= 65508
poke1	= 2023
poke2	= 54272+poke1
ink	= 646
lines	= 8
f1	= 4
key	= 197
norm	= 21
	*= $8000
	jmp init
new	jsr scroll
	.byt 76
vec	.word 0
copy	lda konf
	pha
	sei
	lda #51
	sta konf
	ldy #<font
	sty tmp
	sty tmp2
	lda #>font
	sta tmp+1
	lda #>ram
	sta tmp2+1
	ldx #pages
loop	lda (tmp),y
	sta (tmp2),y
	iny
	bne loop
	inc tmp+1
	inc tmp2+1
	dex
	bne loop
	pla
	sta konf
	cli
	rts
picture	jsr scnclr
	ldx #39
	lda #"."
rei1	jsr out
	dex
	bpl rei1
	ldy #lines
rei2	lda #"."
	jsr out
	ldx #37
	lda #"M"
rei3	jsr out
	dex
	bpl rei3
	lda #"."
	jsr out
	dey
	bpl rei2
	ldx #39
	lda #"."
rei4	jsr out
	dex
	bpl rei4
	ldx #39
	lda #"n"
rei5	jsr out
	dex
	bpl rei5
	ldx #79
	lda #"s"
rei6	jsr out
	dex
	bpl rei6
	ldx #39
	lda #"-"
rei7	jsr out
	dex
	bpl rei7
	ldy #lines
rei8	lda #"-"
	jsr out
	ldx #37
	lda #"V"
rei9	jsr out
	dex
	bpl rei9
	lda #"-"
	jsr out
	dey
	bpl rei8
	ldx #38
	lda #"-"
reia	jsr out
	dex
	bpl reia
	sta poke1
	lda ink
	sta poke2
	rts
init	jsr picture
	sei
	lda irq
	cmp #<new
	beq set
	sta vec
	lda irq+1
	sta vec+1
	lda #<new
	ldy #>new
	sta irq
	sty irq+1
set	lda #>ram
	sta mem1
	sta mem2
	lda #speed
	sta ctr
	lda #0
	sta dir
	jsr copy
	lda #user
	sta bank
	cli
wait	jsr getkey
	beq wait
	rts
scroll	ldy #<ram
	sty tmp
	lda #>ram
	sta tmp+1
	ldx #pages
shift	lda (tmp),y
	bit dir
	bmi forward
	asl
	adc #0
	jmp reward
forward	lsr
	bcc reward
	clc
	adc #128
reward	sta (tmp),y
	iny
	bne shift
	inc tmp+1
	dex
	bne shift
	dec ctr
	bne back
	lda #speed
	sta ctr
	lda dir
	eor #255
	sta dir
back	lda key
	cmp #f1
	beq off
	rts
off	lda #norm
	sta bank
	lda vec
	ldy vec+1
	sta irq
	sty irq+1
	rts
